0%

데이터 타입 연산자

var person,$elem,_name,first_name,val1;

,쉼표는 연산자다.
자바스크립트는 대소문자를 구분한다.

var FRISTNAME:식별자의 이름을 대문자로 쓰면 개발자들사이에서 ‘상수’라는 것을 암묵적으로 약속한다.

변수는 값의 이름을 나타낼수 있는 의미가 중요하다.
주석은 가급적 많이 사용하지 않는것이 좋다-오히려 주석이 이해를 방해/그만큼 네이밍이 중요하다.

카멜케이스- var fristName변수,함수 기본적으로 사용
파스칼케이스-var FirstName생성자함수,클래스
스테이크케이스-var first_name;
헝가리언 케이스-var strFirstName;
var $elem=$(‘.myClass’);

var a=10+20; 10.+,20은 각각이 토큰이다.

+는 산술 연산자,
식(표현식:10+20)=> 값(value)으로 30;
식이 값이 되려면 자바스크립트 엔진이 식을 평가(evaluation)한다.
var a=10+20;(전체를 문:statement)


데이터 타입(7가지-숫자,문자열,불리언,undefined,null,symbol,객체 혹은 참조)

-데이터 타입이 필요하다->할당할때 변수에 확보해야하는 메모리 공간을 확보할 수있다.

1.타입을 알아야-메모리 공간을 확보한다.
2.몇 바이트 공간이 필요한가
3.가져온 값을 어떻게 해석해야하는가?

숫자값 저장(8byte 사용) 타입마다 확보해야하는 메모리 공간 제각각이다. 타입을 모르면 확보해야할 메모리를 모른다.

score을 선두에 접근한다. 8byte만큼 가져옴->가져온 데이터 2진수(문자/숫자/불리언 등으로 어떻게 알것이냐?)
->따라서 식별자는 타입을 알아야한다.


:현재 메모리에 들어있는 데이터
값의 특징:타입을 가지고 있다(7가지 타입중하나)
값이란? 더이산 평가 할 수 없는 하나의 표현식이다.
ex)30-리터럴/리터럴 표기법(10진수)/값을 만들어낸느 가장 시초
평가란?식을 하나의 값으로 계산한다.ex)10+20평가의 대상 -평가의 결과물은 이다.
표현식은 평가가 되어 값이 되는 것이다.
10(피연산자,리터럴)+(산술 연산자)20(피연산자,리터럴)

값을 표기하는 방법 크게 두가지다

1.리터럴(ex)30.
2.표현식(ex)10+20->하나 이상의 리터럴,하나 이상의 표현식 연산자로 만들어진 ‘문(statement)’이다.

10+20:표현식-> 자바스크립트엔진에서 평가->값 30을 만듦/리터럴 표기법를 평가해야 값을 만들어낸다.(평가 전에는 값이 만들어지지않는다.)

숫자 리터럴/문자열 리터럴/불리언 리터럴/null리터럴/undefined리터럴/객체 리터럴/배열 리터럴/함수 리터럴/정규표현식 리터럴

리터럴은 사람이 이해하기 편하게 하기 위해서 만들었다.

데이터 타입
원시타입(숫자/문자열/불리언/undefined/null/symbol)

객체 타입(object/reference type):객체,함수,배열

정수/실수-모든숫자를 실수 타입으로 처리를 한다.

  • Infinity : 양의 무한대
  • -Infinity : 음의 무한대
  • NaN : 산술 연산 불가(not-a-number)

표현식은 평가 되어져서 하나의 값을 만든다.
식별자는 결국 표현식이다.
(ex)var a=10;var a=b;b=a+10;표현식은 하나의 값으로 표현할 수있다.

문자열
작은 따옴표,큰 따옴표-개행하기 위해서는 이스케이프 시퀀스를 사용한다.(개행:\n);

백틱문자는 엔터나 띄어쓰기 같은 것,’’,””을 모두 동시에 사용할 수 있다는 장점이 있다.

console.log(‘My name is’+frist+’’+second+’!’);

+은 문자열 연산자-좌우항에 하나라도 문자열이 있다면 + 연산자로 결합하여 문자열이 된다.
${문자열} ex)console.log(1+1=${1+1});

‘2’는 문자열이다. 이는 암묵적인 타입변환이 일어났단는 것을 알수있다. 이러한 암묵적인 변환은 에러의 온상이 된다.

불리언 타입
논리적인 참,거짓을 나타내는 true 와 false를 가진다.

undefined타입
undefined타입 값은 undefined가 유일 하다.선언 이후에 명시적으로 값을 할당하지 은 변수는 자바스크립트 엔진의 암묵적 초기화에 의해서 undefined값을 가진다. 따라서 선언은 되었지만 아직 값을 할당하지 낳은 변수에 접근하면 undefined가 반환된다.

선언:변수는 선언이라고 부를 것이다.
정의 :무언가를 할당해서 그 변수에 어떤 값을 가지고있는지 명확히 나타냄
함수,클래스는 ‘정의’로 부르겠다. 선언과 동시에 객체가 생성됨

null타입

변수에는 값이 없다는 것을 명확히 나타냄.
ex)var foo=’lee’; foo=null(가비지 컬렉터가 로 ‘lee ‘를 해제해 주세요)

동적 타이핑(타입이 동적이다.)
동적타입언어(자바스크립트)-변수의 타입이 없다(값에 타입이 있다.)-편하지만 신뢰성이 떨어진다(변수의 타입이 암묵적으로 변환이 된다.).

값에 의해서 변수의 타입이 결정이 된다.변수는 선언이 아닌 할당에 의해 타입이 결정된다. 재할당에 의해 변수의 타입은 언제든지 동적으로 바뀔 수 있다.->하나의 변수에 여러가지 값을 마구마구 집어널을 수있다.

정적타입의 언어(자바,c)-변수자체가 타입이 있다=엄격하다(정해진타입의 값만이 들어갈수있기 때문에 )그래서 안정성이 있다.

언제나 변수의 타입의 값을 확정할 수있다.

Typescript ->자바스크립트 에 정적 타입을 도입한것.

동적 타입언어는 편리함,but위험이 도사리고 있다.

동적으로 변화하는 데이터타입을 추측하기 어려운데 ,안정적인 프로그램을 만들기 위해서
1.변수를 최소화 한다.
2.전역변수(라이프 주기가 길다)사용x
변수의 생명주기를 짧게 만든다.
3.변수보다 상수를 사용해서 값의 변경을 억제 하자.
4.변수의 이름을 존재를 파악할 수있도록 명명한다.


표현식과 연산자

표현식 :하나의 값을 표현할 수있는 문
표현식에 리터럴,식별자,연산자를 사용할 수있다.

리터럴-사람이 이해할 수있는 값으로 나타냄
리럴은 표현식을 만드는 요소중에 하나이다.리터럴은 표현식이 될수있지만, 표현식은 리터럴 일수도 아닐 수도 있다.

-표현식일수도 아닐수도 있다.(문>표현식)

표현식인 문-값으로 표현(변수에 할당)
표현식이 아닌 문-값으로 표현 (변수에 할당x)
표현식인 문과 표현식이 아닌 문을 확인하는 가장 쉬운 방법은 변수에 할당해보는 방법이다.

변수선언문-표현식이 아닌 문
할당문**-(ex)x=5; 어떤 변수에 할당할 수있다.

문은 세미콜론으로 끝나야한다. 그러나 단 코드 블록 뒤에는 붙이지 않는다. 자동 삽입 기능이있지만 붙이는 것이 권고 된다.

연산자:표현식을 만드는 연산자.피연산자에는 식이 올수도 있다.

이항 연산자는 부수효과가 없다.
그러나 단항 연산자++,–부수효과가 있다.

+’10’숫자로 암묵적으로 변한이 일어남

비교연산자
===타입이 다르면 false이다.==타입이 달라도 같은 결과라고 나오는 경우가 있기에 ===을 사용해야함.
!==와 !==도 마찬가지

NaN===NaN은 false을 반황하는대 NaNdㅡㄴ 자신과 일치하지 않은 유일한 값이다. 따라서 NaN인지를 조사하려면 빌트인 함수를 isNaN을 사용해여한다.

대소 연산자도 true와 false값을 받는다.

3항 조건 연산자
조건식? 조건식 이 true일때 반환하는 값 :조건식이 false일때 반환하는 값
var x=2;

var result=x%2? ‘홀수’:’짝수’;

console.log(result);

var x=2,result;

if(x%2){
result=’홀수’;

}else{

result=’짝수’

}console.log(result);

논리연산자

or(논리합:||)and(논리곱:&&) not(!)

드모르간의 법칙 !(x || y)===(!x && !y)

단축평가-피연산자가 불리언이 아닐수도 있다 어느 한쪽을 선택함

단축 평가 표현식 평가 결과
true||anything true
false||anything anything
true&&anything anything
false&&anything false

typeof연산자

typeof funciton(){}-함수 리터럴->function을 받는다
생성자 함수=new 객체와 새로운 함수를 만든다.
typeof null은 object를 반환한다.

지수연산자

5 ** 2->25;

var num=5;
num ** =2->25

1.연산자 ++/–변수 ㄱ밧을 고친 다 부수효과가 존재한다.
2.동등연산자의 차이(===/==);
3.삼항조건연산자,if문 대신 사용할 수 있다.